{
 "metadata": {
  "name": "",
  "signature": "sha256:993df4dccddb0783ef51a869b298b5b4a335a0d74d63079b9f3a6965a9ceb558"
 },
 "nbformat": 3,
 "nbformat_minor": 0,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "<h2>Generative model for the Olympic 100m</h2>\n",
      "<p>We will now look at generating data that looks a bit like the Olympic 100m data. We'll start by getting the data.</p>"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import urllib\n",
      "urllib.urlretrieve('https://github.com/sdrogers/fcml/raw/master/notebooks/data/olympic100m.txt', 'olympic100m.txt')\n",
      "import numpy as np\n",
      "data = np.loadtxt('olympic100m.txt',delimiter=',')\n",
      "x = data[:,0][:,None]\n",
      "t = data[:,1][:,None]"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 1
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "<p>We'll assume that we know the true parameter values and look at generating the noise. We'll get the true parameter values by minimising the loss...</p>"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import numpy as np\n",
      "X = np.hstack((np.ones_like(x),x))\n",
      "w = np.dot(np.linalg.inv(np.dot(X.T,X)),np.dot(X.T,t))\n",
      "print w"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "[[  3.64164559e+01]\n",
        " [ -1.33308857e-02]]\n"
       ]
      }
     ],
     "prompt_number": 2
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "<p>Choose values for the mean and variance of the noise</p>"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "mu = 0.0\n",
      "sigma_sq = 0.05"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 3
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "<p>Generate the noisy t values (note that `numpy.random.normal` requires the standard deviation, not the variance)</p>"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "noisy_t = np.dot(X,w) + np.random.normal(mu,np.sqrt(sigma_sq),(t.size,1))"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 4
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "<p>Plot the noisy data</p>"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import pylab as plt\n",
      "%matplotlib inline\n",
      "plt.plot(x,noisy_t,'ko')\n",
      "plt.plot(x,np.dot(X,w),'b')"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 5,
       "text": [
        "[<matplotlib.lines.Line2D at 0x106c80c50>]"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "iVBORw0KGgoAAAANSUhEUgAAAYEAAAEACAYAAABVtcpZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAH25JREFUeJzt3Xl4VPW9x/F3BEzYLFJbcIFGh8UVC1bAhWZAyEHCdUFR\nqV4XWnczKMriSkSvFuttJWnrUkVRn2JdKmjGItoaN7yAIrKJ4ihWRNGCuyYKnPvH74Rsk2Qy2zln\nzuf1PHkyc+bMzDfzZOYz5/w2EBERERERERERERERERERERERERGRgJkDbAZW1ds2HlgDbAcGtXDf\nDcBK4HVgaYbqExGRDBoGDKRhCOwP9AOeo+UQeA/onrnSREQkVe1buf1FoLDRtnVtePy8NlUjIiJZ\ntUsGH9sGngVeBc7N4POIiEiSWjsSSMVRwEfAT4BnMEcQL2bw+UREpI0yGQIfOb8/BR4HBhMnBEKh\nkB2LxTJYhohITooBfVJ9kFRPBzV3zr8T0NW53BkopmHj8k6xWAzbtn37M2PGDNdrCGLtqt/9H9Xv\n7g8QSvHzG2g9BOYBi4H+wAfAROAE5/JQIAr8w9l3L+c6QE/Mt/4VwBKgEliUjoJFRCR9WjsdNKGZ\n7fPjbNsElDiX3wV+nmxRIiKSHZnsHRQI4XDY7RKS5ufaQfW7TfXnBi/047ed81siIpKgvLw8SMNn\nuI4EREQCTCEQQNFoFMuyCIfDWJZFNBpt/U4ikpMyOU5APCgajTJp0iTqj82ovVxSUtLc3UQkR6lN\nIGAsy2LRoqa9dS3LYuHChS5UJCLJUJuAJKWmpibu9urq6ixXIiJeoBAImPz8/LjbCwoKslyJiHiB\nQiBgIpEIoVDD0eahUIjS0lKXKhIRN6lhOGBqG38rKiqorq6moKCA0tJSNQqLBJQahkVEfEgNwyIi\nkjKFgIhIgCkEREQCTCEgIhJgCgERkQBTCIiIBJhCQEQkwBQCIiIBphAQEQkwhYCISIApBEREAkwh\nICISYAoBEZEAUwiIiASYQkBEJMAUAnFoeQMRCQqFQBwzZ8KECbB2rduViIhklkIgjsmT4dBDYfhw\nOO00WLPG7YpERDJDIRBH164wfTrEYjBwIIwYAaeeqjAQkdyjEGhBly4wbZoJg8MOM2FwyimwerXb\nlYmIpIdCIAFdusDUqSYMDj8cRo6E8eNh1Sq3KxMRSY1CoA26dIEpU0wYDB0Ko0bBySfDypVuVyYi\nkhyFQBI6d4bLL4d334UjjwTLgpNOgjfecLsyEZG2UQikoFMn05MoFoOjj4Zjj4UTT4QVK9r2ONFo\nFMuyCIfDWJZFNBrNTMEiIo20d7sAv4pGo5SXl1NTU0N+fj6RSIR33inhrrtgzBgYPBhGjHiRaPTG\nBvuUlJQ0eZxJkyYRi8V2bqu93HhfEZFsmwNsBuo3gY4H1gDbgUEt3Hc0sA5YD0xrYT/bbyorK+1Q\nKGQDO39CoZBdWVlp27Ztf/utbZ977mq7XbuPbJhvw8Am+9QqLi5u8Di1P5ZlufGniYhPOJ8VKWvt\ndNC9mA/z+lYBJwIvtHC/dsAfnfseCEwADkiyRs8pLy9v8M0dzLf3iooKADp2hPffn8z27fsC/wSe\nBJ4gFuu2c59aNTU1cZ+juro6A5WLiDTUWgi8CHzWaNs64O1W7jcYeAfYAPwAPAQcn0R9npTIB7fZ\npxqoAELA08B8li2bwbJldffJz8+P+1gFBQXpKldEpFmZahjeG/ig3vWNzrackMgHd8N9aoA/AX3o\n0WM548ZBSQksXQqRSIRQKNTgcUKhEKWlpekvXESkkUw1DLfpXFVZWdnOy+FwmHA4nOZy0isSiRCL\nxRqcEmr8wR1/n3343e8KGTkS5swxYwwOPriEiy7qxqJFN1BdXU1BQQGlpaVqFBaRBqqqqqiqqkr7\n4+YlsE8h5qT2IY22PwdcDiyPc5+hQBl17QlXAjuAWXH2ddo4/CUajVJRUdHiB3dr+9TUwL33wk03\nwUEHwYwZZhCaiEhr8vLyILHP8JYfJ4F9Cmk+BK4AXotzn/bAW8AxwCZgKaZx+M04+/oyBNKppgbu\nu8+EwQEHmDA44gi3qxIRL0tXCLTWJjAPWAz0x5zjnwic4FweCkSBfzj77uVcB9gGXIJpDV0L/I34\nASBAfj6cfz6sXw/jxpm1DCwLFi92uzIRyXUpp0gaeOpIIN4gsGyfn//+e5g71xwZ9OkDZWVw1FFZ\nLUFEPC5dRwIaMVyPV0bv7rornHsunHUW3H8/nHEGhELmNNGwYVkrIyFeCE0R8Tc3B9014NXRu99/\nb9v33GPb++5r2yNG2Pbzz7tazk6tjZwWkcwhSyOGA8Wro3c7dICJE+Gtt+D00+Gcc8wCN88/72pZ\nrY6cFhHvUwjU4/XRu7VhsG4dnHkm/PrXEA5DBroOJ8SroSkiiVMI1OOX0bsdOsDZZ5swOOcc035Q\nVATPPQfZbGP3emiKSOvUMFxPbYNma4PAvKJ9e9N4fPrp8Ne/mm6mPXua3kTDh0Nehvt+JTJyWkS8\nTV1Ec8i2bTBvHtxwA/ToYcJgxIjMhkEiI6dFJP2yOWI40xQCabZtGzz0kAmDn/zEdC0dOTLzRwYi\nkj0KAWnV9u11YfDjH5swGDVKYSCSCxQCAZPKoKzt2+Hhh2HmTOjWzZwmKi5WGIj4mUYMB0iqI5nb\ntTPzEZ1yCjzyCFx2Gey2mwkDy1IYiASZF97+OhJohWVZLFq0KO72hQsXtvnxtm+HRx81RwZdupgw\nGD1aYSDiJ9maRVQ8IN2Dstq1g1NPhVWr4PLLYcoUGDIEotHsjjMQEfcpBHwgU4OydtnFnCJaudIE\nwfTpMHgwVFamPwyi0SiWZREOh7Esi2g02vqdRCQQ3Jp/yRWVlZV2cXGxXVRUZBcXFyc02Vq2Jmrb\nvt22H33Utg85xLYPO8y2n3jCtnfsSP1xNdGcSPqRpgnkvMDt1zJrUvkwrKystC3LsouKimzLsjL6\nAbp9u20/9phtDxhg24MG2faCBamFgVdnZxXxM9IUAl5oCnT+ntyX7gbeTNuxAxYsMA3IeXlmnMFx\nx7W9ATkcDvN8nClPi4qKMrJwtkgQqGHYh/w26+Yuu8CJJ8Ly5SYAyspg0CCYP79tbQaaaE7EuxQC\nWeTXD8O8PDj+eBMG119vjgwGDoS//90cLbTGL7OzigSRTgdlUbxBX6FQiNmzZ/tq0jXbNj2IysrM\nPEXXXWeOGHZp4SuFJpoTSS9NG+FTufRhaNtmbMH110NNjQmDceNaDgMRSQ+FgHiGbcNTT5kw+O47\nEwYnnaQwEMkkhYB4jm3DP/5hwuCbb0wYnHyywkAkExQC4lm2DU8/bdoMvvqqLgzatXO7MpHcoRCQ\njEtl+mowYbBokQmDL74wYTB+vMJAJB0UApJR6ezJZNvwzDMmDD77DK691kxg54UwSDXoRNySrhDw\nguyPt5ZWZWKqhx07bHvRIts+8kjb7t/fth980La3bUtj0W2kOY3Ez0jTtBFqspO4MjG6OS/PLG/5\n0kvwxz/C7bfDgQfCAw+Y8QaQ3dlGy8vLGxzpgFmsp6KiImPPKeI1WllM4srk6Oa8PLPw/THHwL/+\nZXoT3XADjB27ggULJvPuu2/v3LctK6i1ld+m8RDJBB0JSFzZmOohL88EwfPPw513wn337cK771YC\nZwKmwSCT38z9Oo2HSDrpSEDiqv3mnY3RzXl5MHw4DBgQwUw2WgZcC9wIPJixb+aRSIRYLNak8Vtz\nGkmQeKFl2WnjkKBrONV2ETAD6M3BB89n+fLL6dAh/c+ZS9N4SLCoi6jknHjdUvfaawJ77FHOV1/t\nwdVXw5lnkpEwEPEbhYDkpOa+mb/wgmlAfu89uOoqOOsshYEEm0JAAumll0wYvPNOXRjsuqvbVYlk\nX7ZWFpsDbAZW1dvWHXgGeBtYBHRr5r4bgJXA68DSlKoUcRx9tBl9/OCD8Mgj0K8f3HUXfP+925WJ\n+FNrIXAvMLrRtumYEOgH/NO5Ho8NhIGBwODkSxRp6qijzLxEf/0rPPYY9O1rupkqDETaprUQeBH4\nrNG244C5zuW5wAkt3N8Lp5skhx15pJmx9KGH4PHHoU8fuOMOs8iNiLQumcFiPTCniHB+92hmPxt4\nFngVODeJ5xFJ2BFHwMKF8PDDsGCBOTK4/XaFgUhrUh0x3NIkRkdhTgUdC1wMDEvxuURaNXSoWdjm\nkUfMOsh9+sCf/6wwEGlOMiOGNwM9gY+BPYFPmtnvI+f3p8DjmHaBF+PtWFZWtvNyOBwmHA4nUZZI\nnSFDzPrHS5fCzJlw880wbRr85jegWSHEj6qqqqiqqkr74yZyzr4QeBI4xLl+C7AFmIVpFO5G08bh\nTpjJX74COmN6EV3v/G5MXUQl45YtM2Hw+usmDM49V2Eg/patLqLzgMVAf+AD4Bzgt8AoTBfREc51\ngL2A2nl/e2K+9a8AlgCVxA8Akaw4/HB48kmYP990MQ2FoLwcvvsu+7Vkc7pskdZ4ofeOjgQk6157\nzRwZvPoqTJ0K550HHTtm/nnTuWKbBFu2jgREctJhh5leRJWVUFVljgxuuy3zRwZayKYhHRW5T1NJ\nS6ANHGjGF6xYYY4MZs2CKVPgggugU6e2PVYi6xVrIZs68Y6KMrmIkHiXOwt0isSxYoVtjxtn2z17\n2vatt9r2118ndr9E1yvOxNrNfqXXIjVojWGR9Dv0UDMNxdNPwyuvmNNEt94K33zT8v0SPc2TjRXb\n/EJHRd6g00EicQwYAI8+CitXmvWPb70VJk+Giy6CLl2a7p/oB1o2V2zzOi3v6Q0KAZEWDBhgRh+v\nXm3aDEIhEwYXX9wwDNrygVZSUhLID/3GtLynNygERBJw8MFmXqI1a8yRQSgEl11mwqBrV32gJUNH\nRd6gcQIiSVi71oTBP/9pwuCSS+CFF7ResWSPVhYT8YA33zRh8OyzcOmlJgx2283tqiQINFhMxAMO\nOMAsbPPCC+boIBSC//kf+PJLtysTSYxCQCQN9t/fLHn50kuwbp0JgxtugC++cLsykZYpBETSqH9/\neOABePllWL/erGcwc6bCQLxLISCSAf36wf33w+LFEIuZMLj+evj8c7crE2lIISCSQX37wty5ZvTx\nhg0mDMrKFAbiHQoBkSzo0wfuvReWLIF//9tcnzEDPvvM7cok6BQCIlkUCsGcOSYMNm40RwrXXQdb\nt7pdmQSVQkDEBaEQ3HOPWQN50yYTBtdcozCQ7FMIiLhov/3g7rvNCmebN5swuPpq2LLF7cokKBQC\nIh6w777wl7+YZS8//dT0LrrqKvjPf9yuTHKdQkDEQwoL4a67TBhs2WLGHVx5pcJAMkchIOJBhYVw\n552wfLnpQdSvH0yfbo4SRNJJISDiYT/7Gdxxh1kD+YsvzJHB1KnwySduVya5QiEg4gO9e8Ptt5sw\n+PprM1fRlCkKA0mdQkDER3r3hj//Gd54A7791oTBFVeYnkUiyVAIiPhQr17wpz+ZNZBrasyU1pdf\nDh9/7HZl4jcKAREf22cfqKiAVavghx/gwAPNGshuh0E0GsWyLMLhMJZlEY1G3S1ImqWVxUQ8KhqN\nUl5eTk1NDfn5+UQikVaXq9y0CWbNMtNZn3kmTJsGe+6ZpYId0WiUSZMmNVlvefbs2VpuM43StbKY\nF9gi0lBlZaUdCoVsYOdPKBSyKysrm+xXXFxsFxUV2cXFxTtv37TJti+91LZ33922IxHb/vDD9NYW\n7zlrFRcXN6i79seyrPQVIbWva05w+7UU8ZxEPkgTCYpNm2z7sstMGJSW2vbGjanVlchzFhUVxa29\nqKgotSeXBkhTCKhNQMSDampq4m6vrq7eebm8vLzBKReAWCxGRUXFzut77gm//z2Ulz/LE088RmHh\nl/TuvYC5c59Nqq5EnjM/Pz/ufQsKCpJ6TskshYCIByXyQZpIUIA5R19WdgHvv38y27b15YMP3mbi\nxF8wduwGNm5sW12JPGckEiEUCjW4PRQKUVpa2rYnk6xo73YBIn6QTCNtKiKRCLFYrEnjav0P0kS/\ncTf89v4JMJUdO37HmjV/YsCAQiZMMFNS9OrVel2JPGft61JRUUF1dTUFBQWUlpaqUVia5fapNZEW\nJdpIm4nntSzLLioqsi3LitsonEhdLZ2j37zZtqdONW0GF15o2++/33pNbrwW0hRqGBbJDi/3dmkt\nKGw7sfo/+cS2p02z7e7dbfv88217w4bUnlMyD4WASHb4vbdLW769f/qpbU+fbsLgvPNaDgNxF2kK\nAbUJiLTC771d2nKOfo894OabzRQUv/89DBoEJ51kFrgpLMxy4ZIVrY02mwOUYFqTDnG2dQf+BvwM\n2ACcAnwe576jgduAdsDdwKxmnsMJNRFvCvII2C1bTBjccQeMG2fCYN993a5KIH0jhlt7gGHA18D9\n1IXALcB/nN/TgN2B6Y3u1w54CxgJfAgsAyYAb8Z5DoWAeF40Gg10b5etW+EPfzAzmJ54ogmD/fZz\nu6pgy1YIABQCT1IXAuuAImAz0BOoAvZvdJ8jgBmYowGoC4nfxnl8hYCIT2zdCrfdZmYwPf54uPpq\naDQkQLIkXSGQzGCxHpgAwPndI84+ewMf1Lu+0dkmIj7WvTvMnAnvvGPGFQwZAuecY66LP6U6Yri5\nFmp9tRfJYbvvDtdfD+vXmyUwhw6Fs89WGPhRMr2Dak8DfQzsiWk0buxDoP74w16Yo4G4ysrKdl4O\nh8OEw+EkyhKRbNt9dygrg0svhdmzTRiUlMA110Dfvm5Xl1uqqqqoqqpK++Mm0yZwC7AF09tnOtCN\npg3D7TENw8cAm4ClqGFYJOd9/jmUl5uFbkaPNmHQv7/bVeWmbLUJzAMWA/0x5/jPwTTujgLeBkZQ\n19i7F1C7fNA24BLgaWAtpktpvAAQkRzSrRtcd505LdS/Pxx9NJxxBqxb53Zl0hwvrEqjIwGRHPXl\nl+ao4LbboLgYrr0W9m/cl1CS4mbvIBGRhOy2m+lGGovBQQfBL38Jv/oVvKnzAp6hEBCRjNttNzPA\nLBaDQw6BoiKYMAHWrnW7MlEIiEjWdO0KV15pwuDnP4fhw+G002DNGrcrCy6FgIhkXdeuMG2aCYNB\ng2DECDj1VFi92u3KgkchICKu6dIFpk41YfCLX8DIkTB+PKxa5XZlwaEQEBHXdekCU6aYMBgyBEaN\ngpNPhpUr3a4s9ykERMQzOneGK64wYXDEEWBZZj2DN95wu7LcpRAQEc/p3NksbBOLwVFHmdHH48bB\nihVuV5Z7FAIi4lmdOsHkySYMhg2DMWPMegavv+52ZblDISAintepE1x2mQmDcNhMUnfCCQqDdFAI\niIhvdOwIkyaZMBgxAsaONYvbvPaa25X5l0JARHynY0eIREwYjBxpguC//gtefdXtyvxHISAivlVQ\nAKWlZtZSyzKniMaOhWXL3K7MPxQCIuJ7BQVwySUmDMaMMT2JSkpg6VK3K/M+hYCI5IyCArjoIhMG\nY8eaMQZjxsCSJW5X5l0KARHJOfn5cOGFJgyOO85MRTF6NLzyituVeY9CQERyVn4+XHABrF9vxhec\ndpppO1i82O3KvEMhICI5Lz8fzj/fhMFJJ5mFbUaNgpdfjr9/NBrFsizC4TCWZRGNRuPvmAPau12A\niEi27LornHcenH02zJ1r1j8OhaCszKyHDCYAJk2aRCwW23m/2sslJSXZLzrDtMawiATWDz/A/ffD\njTfCfvuZMLjxRotFixY12deyLBYuXJj9IpuhNYZFRFLUoQP8+tfw9ttw+ulw1lmwdOnNwC+b7Ftd\nXZ39ArNAISAigdehA0ycCG+9BXvv/RxwD/AvoGjnPgUFBW6Vl1EKARERR4cOMGvW/uy3XwlwH3A3\n8Bx77fUrSktL3S0uQ9QmICI5IRqNUl5eTk1NDfn5+UQikaQbcqPRKBUVFXz33Q9s3TqaLVsuom/f\nzsyYAcOHQ54HPjnT1SbggT9FISAiqYnXoycUCjF79uy09OjZtg3mzYMbboCePWHGDDOLqZthoBAQ\nEXFYVnZ69GzbBg89ZMLgpz81YXDMMe6EgXoHiYg4ampq4m5Pd4+e9u3N2IK1a81I5EsuMeMLVq9O\n69NklUJARHwvPz8/7vZM9ehp1850KV2zBi6+GH70o4w8TVYoBETE9yKRCKFQqMG2UCiU8R497dqZ\nKSh69cro02SUpo0QEd+rbfytqKigurqagoICSktLc3Kah3RTw7CIAOntYimZl66GYR0JiEjgJk2T\nOjoSEJGsdbGU9FEXURFJm2x1sRTvUQiISNa7WIp3KARExLUuln6XCyuQpdIwPAn4Deac1F+A2Y1u\nDwMLgHed648BN6bwfCKSIepi2Xa50piebKPCwcA84HDgB2AhcAEQq7dPGJgMHNfKY6lhWER8x+3G\ndLcbhvcHlgDVwHbgeWBcnP280PtIRCTtcqUxPdkQWA0MA7oDnYASYJ9G+9jAkcAbwFPAgUk+l4iI\n5+RKY3qybQLrgFnAIuAb4HVgR6N9lgO9gG+BY4H5QL94D1ZWVrbzcjgcJhwOJ1mWiEh2RCIRYrFY\nkzUMMtWYXlVVRVVVVdofN12na24C/g3c0cI+7wGHAVsbbVebgIj4Uu0KZG40pnthUZmfAp8AvYGn\ngSHAl/Vu7+HcbgODgYeBwjiPoxAQEWkjL8wd9CjwY0zvoIswAXC+c9udwMnAhcA2zCmh01J4LhEJ\nME1ulzle6L2jIwERaVam1w/2Ky+cDkoXhYCINMvt/vhe5fY4ARGRrMiV/vhepRAQEU/Llf74XqUQ\nEBFP0+R2maWVxUTE0zS5XWapYVhExIfUMCwiIilTCIiIBJhCQEQkwBQCIiIBphAQEQkwhYCISIAp\nBEREAkwhICISYAoBEQmUaDSKZVmEw2EsyyIajbpdkqs0bYSIBEa8tQlqLwd1GgpNGyEigZFLaxNo\n2ggRkTbS2gRNKQREJDC0NkFTCgERCQytTdCUGoZFJDC0NkFTahgWEfEhNQyLiEjKFAIiIgGmEBAR\nCTCFgIhIgCkEREQCTCEgIhJgCgERkQBTCIiIBJhCQEQkwBQCIiIBphAQEQkwhYCISIApBEREAiyV\nEJgErAJWO5fjKQfWA28AA1N4LhERyYBkQ+Bg4DfA4cChwFgg1GifMUAfoC9wHnB7ks/laVVVVW6X\nkDQ/1w6q322qPzckGwL7A0uAamA78DwwrtE+xwFznctLgG5AjySfz7P8/I/k59pB9btN9eeGZENg\nNTAM6A50AkqAfRrtszfwQb3rG+PsIyIiLkp2ecl1wCxgEfAN8DqwI85+jVe90RJiIiIekq7lJW8C\n/g3cUW/bHUAV8JBzfR1QBGxudN93aNqeICIiLYth2l1d81Pnd2/gTWC3RrePAZ5yLg8F/i9LdYmI\nSBa8AKwBVgDDnW3nOz+1/oj5pv8GMCir1YmIiIiISHbNwZz3X1Vv22BgKaYBeRlmfAFAATAPWAms\nBabXu89hzmOsB2ZntuQG4tV/KPAKps4ngK71brsSU+M6oLjedj/UPwp41dn+KnVHdOBO/W197cGc\njvwauLzeNj+89gADnNtWO7fv6mz3Q/1efO/2Ap7DnKFYDUSc7d2BZ4C3MZ1ZutW7j1fev22t3Wvv\n3QaGYUYH1/9HqgIs5/KxmD8W4GzMPxJAR+A9zJsaTGgMdi4/BYzOSLVNxat/mbMd4BxgpnP5QMzp\nsA5AIebUV21jux/q/znQ07l8EKYbby036m9L7bUeBf5GwxDww2vfHnOa9BDn+u7Uddn2Q/1n4733\nbk/M/zRAF+At4ADgFmCqs30a8Fvnspfev22t3Wvv3SYKafiPNA84xbk8AXjQuWxhvl20A/bA/OHd\ngD0xjc21TqNhz6NMK6Rh/Z/Xu9wLk9ZgvkVMq3fbQkwjuF/qry8P2IJ5Q7hZfyGJ134C5k0yg7oQ\n8MtrPwZ4IM79/VK/V9+79c0HRmK+5dcOVO3pXAfvvn+h9drrS+m9m60J5KYD/4vpRvo74Cpn+9PA\nl8BHwAbnts8xA83qJ9uHzja3rAGOdy6Px7wZAPaiYZ0bMXU23u7V+us7CXgN+AFvvf7N1d4F8w2p\nrNH+Xqodmq+/H2bczELM6z7F2e6X+r3+3i3EHNUswXyI1nZN30zdh6pX37+FtF57fSm9d7MVAvdg\nznH1Bi5zrgOcgTmU3BPYF7jC+e01E4GLMOfeugDfu1tOm7VW/0GYw8zz8Z7mai8D/gB8S/rGu2RC\nc/W3B44GfuX8PhEYgfcGVDZXv5ffu12AxzATW37V6DYb773G9bW19pTfu8mOGG6rwZhDGzDncO92\nLh8JPI6Zf+hT4GVMo8ZLNJxiYh9MornlLeraNPphpskAU1P9b9X7YFL4Q/xRP5ja/g78N+a8Lnir\n/sa1j3EuD8Z8A7oFcxpiB/Ad5m/xSu3Q/Gv/Aaab9Vbn+lOYbtQP4u36a19/r753O2A+RB/AnFIB\n8w26J/AxJrQ+cbZ77f3bltpr6/Lse7eQhucVl2NGCwMcg2lsAnN0MMe53Blz6Hmwc30JMATzLS/b\njRuFNKz/J87vXYD7MY1iUNewtCvmW1CMum+lfqi/G6Zx8oQ4j+FW/YUkVnt9M4DJ9a775bV/DfNt\nuj2mB8ixzm1+qN+L7908p8Y/NNp+C3Xn/qfTtGHYC+/fttbuxffuTvOATZjDxg8wPQp+4RS2AtPd\nrHZtgXzMN59VmH+ieN383sGsS5AtjeufiPmHf8v5uanR/lc5Na6j7hsT+KP+azDdK1+v97OHc5sb\n9bf1ta/VOAT88NoDnI7pDriKujc3+KN+L753j8YcEa6g7v95NKab5bPE7yLqlfdvW2v32ntXRERE\nRERERERERERERERERERERERERERERETc9P+S0nzTLsqs9wAAAABJRU5ErkJggg==\n",
       "text": [
        "<matplotlib.figure.Figure at 0x106c6bdd0>"
       ]
      }
     ],
     "prompt_number": 5
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "<p>A second plot, this time with the real data included</p>"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import pylab as plt\n",
      "%matplotlib inline\n",
      "plt.plot(x,noisy_t,'ko')\n",
      "plt.plot(x,np.dot(X,w),'b')\n",
      "plt.plot(x,t,'ro')"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 6,
       "text": [
        "[<matplotlib.lines.Line2D at 0x106e31b10>]"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\n",
       "text": [
        "<matplotlib.figure.Figure at 0x106d76350>"
       ]
      }
     ],
     "prompt_number": 6
    }
   ],
   "metadata": {}
  }
 ]
}